package com.christina.engine.intent.model;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
import lombok.Builder;
import lombok.Getter;

import java.util.Map;

/**
 * 意图模型
 * 
 * @author Christina
 */
@Data
@Builder
public class Intent {
    
    /**
     * 意图类型
     */
    private IntentType type;
    
    /**
     * 意图名称
     */
    private String name;
    
    /**
     * 意图描述
     */
    private String description;
    
    /**
     * 置信度
     */
    private double confidence;
    
    /**
     * 意图参数
     */
    private JSONObject parameters;
    
    /**
     * 意图类型枚举
     */
    @Getter
    public enum IntentType {
        // 出行相关意图
        TRAVEL_PLANNING("出行规划"),
        TRAVEL_BOOKING("出行预订"),
        TRAVEL_INQUIRY("出行咨询"),
        TRAVEL_MODIFICATION("出行变更"),
        TRAVEL_CANCELLATION("出行取消"),
        
        // 聊天相关意图
        GENERAL_CHAT("一般聊天"),
        QUESTION_ANSWER("问答"),
        RECOMMENDATION("推荐建议"),
        
        // 用户相关意图
        USER_REGISTRATION("用户注册"),
        USER_LOGIN("用户登录"),
        USER_PROFILE("用户资料"),
        
        // 任务相关意图
        TASK_CREATION("任务创建"),
        TASK_QUERY("任务查询"),
        TASK_UPDATE("任务更新"),
        
        // 通知相关意图
        NOTIFICATION_SETTING("通知设置"),
        REMINDER_SETTING("提醒设置"),
        
        // 系统相关意图
        HELP_REQUEST("帮助请求"),
        FEEDBACK("反馈建议"),
        COMPLAINT("投诉"),
        
        // 未知意图
        UNKNOWN("未知意图");
        
        private final String description;
        
        IntentType(String description) {
            this.description = description;
        }

    }
}